home *** CD-ROM | disk | FTP | other *** search
- /* CheckDataBase.br
- *
- * Script by: Eivind Nordseth, Ultima Thule Software.
- *
- * Improved by: Magne Østlyngen
- *
- */
-
- parse arg argument
-
- template = 'BBSNAME/A,CONFNAME,DELETE/S'
-
- if (argument = '' | argument = '?') then
- do
- say '$VER: CheckDataBase 3.2m (28.8.95)'
- say 'Checks the messages in one or ALL BBSes. If the DELETE switch is used will '
- say 'all messages which are impossible to read be marked as deleted.'
- say 'Template:' template
- exit
- end
-
- if ~show('p','BBSREAD') then do;address command
- "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead";"WaitForPort BBSREAD";end
-
- address BBSREAD
-
- READARGS template ARGS CMDLINE argument
- if rc~=0 then do
- say BBSREAD.LASTERROR
- exit 0
- end
-
- options failat 31
-
- if upper(ARGS.BBSNAME) = "ALL" then do
- GETBBSLIST stem BBSLIST
- if rc~=0 then do
- say BBSREAD.LASTERROR
- exit 0
- end
- end
- else do
- BBSLIST.1 = ARGS.BBSNAME
- BBSLIST.COUNT = 1
- end
-
- do n=1 to BBSLIST.COUNT
- say 'Checking bbs:' BBSLIST.n
-
- if symbol("ARGS.CONFNAME")~="VAR" then do
- GETCONFLIST stem CONFLIST '"'||BBSLIST.n||'"'
- if rc~=0 then do
- say BBSREAD.LASTERROR
- exit 0
- end
- end
- else do
- CONFLIST.1 = ARGS.CONFNAME
- CONFLIST.COUNT = 1
- end
-
- do i=1 to CONFLIST.COUNT
- say ' Checking conference:' CONFLIST.i
-
- GETCONFDATA '"'||BBSLIST.n||'"' '"'||CONFLIST.i||'"' stem CONFDATA
- if rc~=0 then do
- say BBSREAD.LASTERROR
- exit 0
- end
-
- do k = CONFDATA.FIRSTMSG to CONFDATA.LASTMSG
- READBRMESSAGE '"'||BBSLIST.n||'"' '"'||CONFLIST.i||'"' k datastem DATA headstem HEAD textstem TEXT
- if rc~=0 then do
- Say ' Error reading message' k ':' BBSREAD.LASTERROR
- if ARGS.DELETE~=0 then do
- say ' Marking message as deleted.'
-
- UPDATEBRMESSAGE '"'||BBSLIST.n||'"' '"'||CONFLIST.i||'"' k SETDELETED
- if rc~=0 then
- say ' Unable to mark message as deleted:' BBSREAD.LASTERROR
- end
- end
- end
- end
- end
-
- exit 0
-